Service Layer for Showcase
Automatic and manual showcase merge at the service layer.
This concept has a single value by the business team.
Service Layer
public interface IShowcaseService
{
Task InsertShowcaseAsync([NotNull]string appId,[NotNull] ShowcaseRequestDto dto);
Task<ShowcaseResponseDto> UpdateShowcaseAsync([NotNull]string appId, [NotNull]string showcaseId,[NotNull]ShowcaseUpdateRequestDto dto);
Task InsertFilterModelForShowcaseAsync([NotNull]string appId, [NotNull]string showcaseId, [NotNull]ShowcaseFilterRequestDto dto);
Task<ShowcaseResponseDto> InsertProductForManualShowcaseAsync([NotNull]string appId, [NotNull]ShowcaseProductRequestDto dto);
Task DeleteProductForShowcaseAsync([NotNull]string appId, [NotNull]ShowcaseProductRequestDto dto);
Task<List<ShowcaseResponseDto>> GetShowcasesAsync([NotNull]string appId);
Task DeleteShowcaseAsync([NotNull]string showcaseId,[NotNull]string appId);
Task<List<ShowcaseResponseDto>> FilterShowcaseAsync([NotNull]string appId, [NotNull]ShowcaseFilterDto dto);
Task ActiveShowcaseAsync([NotNull]string showcaseId, [NotNull]string appId);
Task PassiveShowcaseAsync([NotNull] string showcaseId, [NotNull] string appId);
Task<ShowcaseFilterResponseDto> GetFilterModelForShowcaseAsync([NotNull] string showcaseId, [NotNull] string appId);
Task<ShowcaseResponseDto> GetSingleShowcaseAsync([NotNull]string showcaseId, [NotNull]string appId);
Task<List<ShowcaseIgnoreProductsResponseDto>> GetShowcasesIgnoreProductAsync([NotNull]string appId);
Task<ShowcaseResponseDto> MoveProductForShowcaseAsync([NotNull]string appId, [NotNull] ShowcaseMoveProductRequestDto dto);
}
Note !!
TODO - Refactor ShowcaseId and AppId are always together So encapsulation can be implemented.
Note !!
Automatic and manual showcase seperated at the repository layer.
Repository implementation is required for New showcase add.